package com.jt.vo;/**
 * @Author 金帮嘉诚 @Date 2021-08-04 星期三 11:27
 */
/*本类用于测试*/

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 知识点
 */

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult implements Serializable {//规范写法
    private Integer status;//状态码 200 201
    private String msg;//服务器返回的提示信息
    private Object data;//服务器返回的业务数据

    //为了使用户使用VO对象 更加的方便 重载一些方法 简化程序的使用
    public static SysResult fail() {
        return new SysResult(201, "业务执行失败", null);
    }

    //重载
    //1.不带返回值的正确返回
    public static SysResult success() {
        return new SysResult(200, "业务执行成功", null);
    }

    //2.带返回值的正确返回 用户传递什么 返回值就是什么
    public static SysResult success(Object data) {
        return new SysResult(200, "业务执行成功", data);
    }//不能写一个传递String类型msg参数的重载方法，因为参数类型有耦合，传递String类型对象时会有歧义

    //3.带返回值的正确返回 携带提示信息
    public static SysResult success(String msg, Object data) {
        return new SysResult(200, msg, data);
    }
}
